Timing systems for microcomputers are well known in the art. They are particularly used in the field of digital devices for cars, for carrying out complex timing functions, such as event counting in a timing window, or for having different timing functions with different resolution. To perform these functions, timing units (which have standard characteristics) are connected among them in different ways to form a timing system. For instance, if only 16 bit timing units are available (that may count up to 65,535) and the events to be counted are more numerous than 65,535, two or more timing units may be connected such that the end count pulse of a first timing unit is sent to a second timing unit. These connections may be done via software, hardware or a combination thereof.
The software connection includes a routine installed in the microprocessor that uses the timing system. The microprocessor receives the count signals for its calculations and signals produced by each timing unit, recognizes the nature thereof (if it is an end count signal or another kind of signal), and sends it to a certain input of another timing unit. It is evident that with this technique, it is possible to change the interactions among timing units at any time, thus using the same timing units for many different functions. On the other hand, the microprocessor is overloaded, because it must intervene each time a timing unit generates a signal to be input to another timing unit.
The hardware approach includes connecting the timing units of the timing system in a fixed manner. This approach allows fast computations and it does not overload the microprocessor, but the chosen configuration cannot be modified, thus it is not possible to reuse the same timing units for many different purposes.
Mixed approaches include using a dedicated coprocessor only for managing all interactions among timing units, is disclosed in the European Patent Application EP 355, 363 by B. F. Wilkie et al. This approach does not burden the microprocessor and ensures a complete flexibility of use of timing units, which can be reconfigured and reused for other applications. Unfortunately, the realization of the dedicated coprocessor is costly in terms of the amount of silicon area occupied.
A different approach, disclosed in U.S. Pat. No. 5,634,045 and EP 773, 491 by V. B. Goler et al., contemplates using software configurable structures having channels that communicate by way of independently partitioned timer buses and pin/status buses. Unfortunately these structures are complex to be managed.